/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presenter;

import boundary.AddGerenteView;
import collection.CollectionAgencia;
import collection.CollectionGerente;
import entity.Agencia;
import entity.Gerente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author jakson
 */
public class AddGerentePresenter {

    private AddGerenteView view;
    private collection.CollectionGerente incluir = new CollectionGerente();
    private CollectionAgencia agencias;

    public AddGerentePresenter(String editar, Gerente a) {

        view = new AddGerenteView(null, true);
        if (editar.equals("transferir")) {

            view.getCampoCpf().setEnabled(false);
            view.getCampoDataNascimento().setEnabled(false);
            view.getCampoEndereco().setEnabled(false);
            view.getCampoNome().setEnabled(false);
            view.getCampoUsuario().setEnabled(false);
            view.getComboBoxAgencia().setEnabled(true);

            carregarTelaEditar(a);

            view.getBtnSalvar().addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent ae) {
                    editar();
                }
            });

        } else if (editar.equals("editar")) {

            view.setTitle("Editar Agência");
            carregarTelaEditar(a);

            view.getBtnSalvar().addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent ae) {
                    editar();
                }
            });
        } else {

            view.getBtnSalvar().addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent ae) {
                    salvarGerente();
                }
            });
        }
        view.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                fechar();
            }
        });
        imprimeAgencias();
        view.setLocationRelativeTo(view);
        view.setVisible(true);
    }

    private void fechar() {
        view.dispose();
    }

    private void limparCampos() {
        view.getCampoNome().setText("");
        view.getCampoUsuario().setText("");
        view.getCampoDataNascimento().setText("");
        view.getCampoCpf().setText("");
        view.getCampoEndereco().setText("");
    }

    private void salvarGerente() {
        Gerente ge = new Gerente(view.getCampoNome().getText(), view.getCampoEndereco().getText(), view.getCampoCpf().getText(),
                view.getCampoDataNascimento().getText(), view.getCampoUsuario().getText(), view.getComboBoxAgencia().getSelectedItem().toString());

        incluir.incluirGerente(ge);
        JOptionPane.showMessageDialog(null, "CADASTRO REALIZADO COM SUCESSO");
        limparCampos();

    }

    private void editar() {
        Gerente ge = new Gerente(view.getCampoNome().getText(), view.getCampoEndereco().getText(), view.getCampoCpf().getText(),
                view.getCampoDataNascimento().getText(), view.getCampoUsuario().getText(), view.getComboBoxAgencia().getSelectedItem().toString());

        incluir.editacao(ge);
        JOptionPane.showMessageDialog(null, "EDIÇÃO REALIZADA COM SUCESSO");
        limparCampos();
    }

    private void carregarTelaEditar(Gerente a) {

        view.getCampoNome().setText(a.getNome());
        view.getCampoCpf().setText(a.getCpf());
        view.getCampoEndereco().setText(a.getEndereco());
        view.getCampoUsuario().setText(a.getUsuario());
        view.getCampoDataNascimento().setText(a.getDataDeNascimento());
    }

    private void imprimeAgencias() {

        ArrayList<Agencia> agen = new ArrayList<Agencia>();
        agencias = new CollectionAgencia();
        agen = agencias.getAgencias();

        for (int i = 0; i < agen.size(); i++) {
            view.getComboBoxAgencia().addItem(agen.get(i).getCodigo());
        }

    }
}
